]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Round CSS units to the nearest multiple of the scale factor
authorCarlos Garnacho <carlosg@gnome.org>
Sat, 23 Mar 2019 15:33:58 +0000 (16:33 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Wed, 17 Apr 2019 18:46:37 +0000 (18:46 +0000)
Actors themed through CSS should ideally get sizes and positions that
conform to the "pixel grid". A notorious example is the panel that has a
height of 1.86em. On unchanged font settings and hidpi that translates to
55px, which leaves the workarea with "half pixels" that hidpi wayland
applications don't know how to fully cover.

If the requested height is a multiple of the scale factor, the workarea
and maximized applications can then work on full pixels.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/91
src/st/st-theme-node.c

index c05ca78fcb2972c1622a789a6f90039c99d5d281..8a6ebf03f81e9401d90242a1c8c87df99b54b657 100644 (file)
@@ -1136,10 +1136,14 @@ get_length_from_term_int (StThemeNode *node,
 {
   double value;
   GetFromTermResult result;
+  int scale_factor;
 
   result = get_length_from_term (node, term, use_parent_font, &value);
   if (result == VALUE_FOUND)
-    *length = (int) (0.5 + value);
+    {
+      g_object_get (node->context, "scale-factor", &scale_factor, NULL);
+      *length = (int) ((value / scale_factor) + 0.5) * scale_factor;
+    }
   return result;
 }